package huffmann;

public class MontaArvore {
	public Objeto execute(Objeto lista) {
		Objeto aux1, aux2 = lista, aux3;
		InsereOrdenado io = new InsereOrdenado();

		while(lista.getNext() != null){
			aux1 = lista;
			lista = lista.getNext();
			aux2 = lista;
			lista = lista.getNext();
			aux1.setNext(null);
			aux2.setNext(null);
			
			aux3 = new Objeto();
			aux3.setFilho0(aux1);
			aux3.setFilho1(aux2);
			aux1.setPai(aux3);
			aux2.setPai(aux3);
			aux3.setProbabilidade(aux1.getProbabilidade() + aux2.getProbabilidade());
			lista = io.execute(lista, aux3);
		}
		return lista;
	}
}
